home *** CD-ROM | disk | FTP | other *** search
- Path: comma.rhein.de!serpens!not-for-mail
- From: mlelstv@serpens.rhein.de (Michael van Elst)
- Newsgroups: comp.sys.amiga.programmer
- Subject: Re: CHIP RAM speed test results
- Date: 20 Mar 1996 09:43:29 +0100
- Organization: dis-
- Message-ID: <4iogfh$e6i@serpens.rhein.de>
- References: <38232981@kone.fipnet.fi> <4ico8k$2vau@columba.udac.uu.se> <42116651@phoenix.owl.de>
- NNTP-Posting-Host: serpens.rhein.de
-
- "Frank Wille" <frank@phoenix.owl.de> writes:
-
- >With my 68040/25MHz I'm getting the following results:
-
- >move.l (a0)+,(a1)+ -> 3.99 MB/sec
- >move16 (a0)+,(a1)+ -> 5.91 MB/sec
-
- >So MOVE16 is 50% faster, although the A3640 doesn't support burst
- >transfers.
-
- Sure. The MOVE16 instruction bypasses the cache. With move.l and copyback cache
- every _write_ to memory is done to the cache. This first causes a _write_ if that
- cache line was modified (true for most of the writes in the copy loop) and then
- an _additional read_ because the write just modifies a single long word and the
- rest of the cache line has to be updated from memory. So the move.l loop effectively
- does read the source, read the destination and write the destination while the
- move16 does only read source and write destination.
-
- This is exactly why the move16 was implemented, to avoid the cost of the copyback
- cache when doing bulk copies. Unfortunately it requires that source and destination
- are properly aligned, something that is difficult to achieve under AmigaOS.
-
- Regards,
- --
- Michael van Elst
-
- Internet: mlelstv@serpens.rhein.de
- "A potential Snark may lurk in every tree."
-